Deploying and Scaling the Notebook


In [1]:
from IPython.display import Image

How could you deploy the Jupyter Notebook in your organization?

Here are the basic building blocks of the Jupyter architecture


In [2]:
Image('images/JupyterBlocksA.png')


Out[2]:

Most of our users run these building blocks on their laptops


In [3]:
Image('images/JupyterBlocksB.png')


Out[3]:

But it is just as easy to run them all in a Docker Container

https://registry.hub.docker.com/repos/ipython/


In [4]:
Image('images/JupyterBlocksC.png')


Out[4]:

JupyterHub

https://github.com/jupyter/jupyterhub

JupyterHub is a new Jupyter project that allows a centralized, multiuser deployment of the Jupyter Notebook.

This works by putting individual users's notebooks behind a central proxy and hub.


In [5]:
Image('images/JupyterBlocksD.png')


Out[5]:

This opens up many choices and opportunties:

  • Users and authentication:
    • Unix auth (PAM)
    • GitHub OAuth
    • Google OAuth
    • Active Directory
  • Store notebooks:
    • Google Drive
    • OpenStack Swift
    • PostgreSQL
    • ???
  • Spawn notebooks/kernels:
    • Local subprocesses
    • Docker
    • Docker+Swarm

Quantopian Research Platform

The Quantopian Research Platform is an algorithmic/quantitative trading platform for Python using the building blocks of JupyterHub.


In [6]:
Image("images/quantopian-research.png", width="90%")


Out[6]:

tmpnb and try.jupyter.org

Using these same building blocks, we are offering instant, transient, cloud hosted notebooks.

https://tmpnb.org

https://try.jupyter.org

https://demohub.jupyter.org

These building blocks are starting to enable ubiquitous, computational narratives

Other architectures are also possible

Like Legos, these building blocks can be assembled in a wide range of different ways to suite your usage cases:


In [7]:
Image('images/JupyterBlocksE.png')


Out[7]: